package com.example.cloudmusicserve.controller;

import com.alibaba.fastjson.JSON;
import com.example.cloudmusicserve.entity.ResMsg;
import com.example.cloudmusicserve.entity.User;
import com.example.cloudmusicserve.entity.UserMessage;
import com.example.cloudmusicserve.entity.UserUpdataMsg;
import com.example.cloudmusicserve.service.UserSerivce;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @description: UserController
 * @author: xiaoyuan
 * @time: 2023/5/27
 */
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理接口")
public class UserController {
//    注入要返回的数据
    @Resource
    ResMsg res;
    @Resource
    UserSerivce userSerivce;

    @PostMapping("/register")
    public ResMsg registerUser(@RequestBody User user){
        Integer flag = userSerivce.addUser(user);
        if (flag==1){
            res.setCode(200);
            res.setResmsg("注册成功");
            res.setData("1");
        }else {
            res.setCode(400);
            res.setResmsg("该用户已经存在！！");
            res.setData("0");
        }
        return res;
    }

    @PostMapping("/updataUserMsg")
    public ResMsg UpdataUser(@RequestBody UserUpdataMsg updataMsg){
        Integer flag = userSerivce.updateUserMessage(updataMsg);
        res.setCode(200);
        res.setResmsg("更改成功");
        res.setData("");
        return res;
    }

    @PostMapping("/login")
    public ResMsg login(@RequestBody User user){
        Integer count = userSerivce.getByNameAndPassword(user);
        System.out.println(count);
        if (count==1){
            res.setCode(200);
            res.setResmsg("登录成功");
            res.setData("1");
        }else if(count==2){
            res.setCode(400);
            res.setResmsg("用户不存在");
            res.setData("2");
        }else {
            res.setCode(401);
            res.setResmsg("密码错误");
            res.setData("0");
        }
        return res;
    }

    @GetMapping("/getallMessage")
    public ResMsg getallMessage(){
//        res.setCode(200);
//        res.setResmsg("获取成功");
//        JSONArray jsa = JSONArray.from(userSerivce.getAll());
//        String result = jsa.toString();
//        res.setData(result);
        return res;
    }

    @GetMapping("/getUserMsg")
    public ResMsg getUserMessage(@RequestParam String username){
        UserMessage user = userSerivce.getByUsernameOfMsg(username);
        res.setCode(200);
        res.setResmsg("获取成功");
        res.setData(user);
        return res;
    }
}
